
#include "main.h"
#include "mainwindow.h"
#include <QtGui/QApplication>

// Funkcja ladujaca obraz do GPU
GLuint loadTexturePNG(const string& name)
{
    ifstream *sfile;
    uint32 size;
    ILubyte *buffer;
    ILuint tex;

    // Otwarcie pliku
    sfile = new ifstream(name.c_str(), ios::in | ios::binary | ios::ate);
    if(sfile->fail())
    {
        delete sfile;
        return 0;
    }

    // Okreslenie rozmiaru pliku
    sfile->seekg(0, ios::end);
    size = sfile->tellg();
    sfile->seekg(0, ios::beg);

    // Utworzenie buforu tymczasowego i odczyt pliku
    buffer = new ILubyte[size];
    sfile->read((char*)buffer, size);
    sfile->close();
    delete sfile;

    // Rozkodowanie PNG do OpenGL
    ilGenImages(1, &tex);
    ilBindImage(tex);
    ilLoadL(IL_PNG, buffer, size);
    GLuint id = 0;
    glGenTextures(1, &id); 
    glBindTexture(GL_TEXTURE_2D, id);
    ilutGLTexImage(0);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    ilDeleteImages(1, &tex);

    delete[] buffer;
    return id;
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
